#ifndef TOWERCONTROLINBOX_H_
#define TOWERCONTROLINBOX_H_

#include "../DTO/DTOFlightRelated.h"
#include "../DTO/DTORunwayRelated.h"
#include "../../utils/FifoProtocoloPlano.h"
#include "../DTO/DTOFlightControlerRequest.h"


class TowerControlInbox : public FifoProtocoloPlano {
public:
	TowerControlInbox(std::string fifoName,bool isForRead = false);
	virtual ~TowerControlInbox();

	//Avisa que el generador termino su trabajo, no va a haber mas vuelos
	void endFlightGenerator();

	//Escribe la llegada del nuevo vuelo
	void newFlightArrival(DTOFlightRelated newflight);

	void releaseRunway(unsigned int runwayId);

	void requeueVuelo(DTOFlightRelated* dto);
	void requeueRequest(DTOFlightControlerRequest* dto);


	void flightControllerRequest(DTOFlightControlerRequest dto);

private:
	bool isRunning;

};

#endif /* TOWERCONTROLINBOX_H_ */
